package com.bgs.travelapp.ticket.controller;

import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import com.bgs.travelapp.result.CommonResult;
import com.bgs.travelapp.ticket.entity.TicketEntity;
import com.bgs.travelapp.ticket.service.TicketService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.lang.annotation.Target;

/**
 * 门票管理 （后端）
 * gpd
 * 2022-07-15 20点56分
 */
@CrossOrigin
@RestController
@RequestMapping("/ticket")
public class TicketController {
    @Resource
    TicketService ticketService;

    /**
     * 新增门票--三级联动（省份查询）（后端---门票管理）
     * @param pid
     * 查询pid为=0的所有省份
     * gpd 2022-07-15 08:30
     * @return
     */
    @GetMapping("/getProvinceAllList")
    public CommonResult getProvinceAllList(Integer pid){
        return CommonResult.ok(ticketService.getProvinceAllList(pid));
    }

    /**
     * 新增门票--三级联动（城市查询） （后端---门票管理）
     * @param provinceId
     * 查询provinceId为点击省份的所有城市
     * gpd 2022-07-15 08:40
     * @return
     */
    @GetMapping("/getCityAllList")
    public CommonResult getCityAllList(Integer provinceId){
        return CommonResult.ok(ticketService.getCityAllList(provinceId));
    }

    /**
     * 新增门票--三级联动（景区查询） （后端---门票管理）
     * @param cityId
     * 查询cityId为点击城市的所有景区
     * gpd 2022-07-15 08:50
     * @return
     */
    @GetMapping("/getScenicAllList")
    public CommonResult getScenicAllList(Integer cityId){
        return CommonResult.ok(ticketService.getScenicAllList(cityId));
    }

    /**
     * 新增门票--查询景区是否重复录入 （后端---门票管理）
     * @param pid
     * 根据pid查询对应数据库中是否有录入的景区
     * gpd 2022-07-15 09:12
     * @return
     */
    @GetMapping("/getScenicName")
    public CommonResult getScenicName(Integer pid){
        return CommonResult.ok(ticketService.getScenicName(pid));
    }

    /**
     * 新增门票 （后端---门票管理）
     * @param ticketEntity
     * gpd 2022-07-15 09:22
     * @return
     */
    @PostMapping("/saveTicket")
    public CommonResult saveTicket(TicketEntity ticketEntity){
        ticketEntity.setDelFlag(0);
        return CommonResult.ok(ticketService.saveTicket(ticketEntity));
    }


    /**
     * 门票管理分页全查+模糊查（景区名称、景区票价）（后端---门票管理）
     * ticketPrice最低票价
     * ticketPrice1最高票价
     * gpd 2022-07-15 09:32
     * @param pageRequest
     * @param scenicName
     * @return
     */
    @GetMapping("/getTicketByPage")
    public PageResult getTicketByPage(PageRequest pageRequest,String scenicName,Integer ticketPrice,Integer ticketPrice1){
        return ticketService.getTicketByPage(pageRequest,scenicName,ticketPrice,ticketPrice1);
    }

    /**
     * 修改门票 （后端---门票管理）
     * gpd 2022-07-15 09:42
     * @param ticketEntity
     * @return
     */
    @PutMapping("/updateTicket")
    public CommonResult updateTicket(TicketEntity ticketEntity){
        return CommonResult.ok(ticketService.updateTicket(ticketEntity));
    }

    /**
     * 删除门票 （后端---门票管理）
     * @param id
     * 根据id进行删除
     * gpd 2022-07-15 09:52
     * @return
     */
    @DeleteMapping("/deleteTicket")
    public CommonResult deleteTicket(Integer id){
        return CommonResult.ok(ticketService.deleteTicket(id));
    }

    /**
     * 查询景区剩余门票 （后端---门票管理）
     * @param scenicId
     * gpd 2022-07-15 10:22
     * @return
     */
    @GetMapping("/getSurplusTicket")
    public CommonResult getSurplusTicket(Integer scenicId){
        return CommonResult.ok(ticketService.getSurplusTicket(scenicId));
    }
}
